import colors from 'colors'
import { time } from "../utils/day.utc";
import { Request, Response } from "express";

/**
 * ### 全局响应处理器
 * 用于快捷处理请求成功/失败时的响应
 * - 使用方式：res.cc(message, data, status)
 *
 * @param message : 响应信息
 * @param data : 响应数据
 * @param status : 响应状态码
 * @returns
 */

export const globalResProcMidd = (req: Request, res: Response, next: any) => {
  res.cc = (message: object | string, data: object | string, status: number = 400) => {

    // 打印响应日志
    console.log(status < 202 ? colors.bold(`\n>>>>>>> 响应请求${status}：`).bgGreen : status < 210 ? colors.bold(`\n>>>>>>> 响应请求${status}：`).bgYellow : colors.bold(`\n 响应请求${status}：`).bgRed);
    console.log(`\n====== ${time().format('YYYY-MM-DD HH:mm:ss')} ======\n`);
    console.log(`状态码 (status): ${status}`);
    console.log(`信息 (message): ${message}`);
    console.log(`\n响应数据 (data):`);
    console.log(data);
    console.log(`\n====== ${time().format('YYYY-MM-DD HH:mm:ss')} ======\n`);

    // 向前端返回成功/失败的值
    res.send({
      status,
      message: message,
      data: data,
    })
  }
  next()
}
